import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class test {
    public static void main(String[] args) {
       /* ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(0,99);

        for(int i = 0;i < list.size();i++){
            System.out.print(list.get(i) + " ");
        }
        System.out.println();

        ArrayList<Number> list1 = new ArrayList<>(list);*/
        // list必须是Number的子类或者是它本身(Integer)


      /*  // 1. addAll
        ArrayList<Number> list12 = new ArrayList<>();
        // list12.addAll(list);
        // 将list对象中的内容都复制入list12对象中
        System.out.println(list12);

        // 2. remove
        // 删除下标2对应的内容
        list12.remove(2);
        // 删除3这个对象
        list12.remove(new Integer(3));

        // 3. get和set
        System.out.println(list12.get(1));
        list12.set(1,2);

        // 4. clear
        // list12.clear();

        // 5. boolean contains(Object o) 判断o是否在线性表中
        // 6. int indexOf(Object o) 返回出现o所在的第一个下标
        // 7. int lastIndexOf(Object o) 返回最后一个o的下标  */

        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

        System.out.println(list);
        for(Integer x : list){
            System.out.print(x);
        }
        System.out.println();

        // 迭代器
        Iterator<Integer> it = list.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println();

        // subList不会创建新的对象，只是让list1指向原对象的1下标位置
        /* List<Integer> list1 = list.subList(1,3);
        System.out.println(list1);// 2 3
        list1.set(0,99);

        System.out.println(list1);// 99 3
        System.out.println(list);// 1 99 3 4 5 */

        // System.out.println(list12);
        // System.out.println(list);
    }
}
